package com.zzyl.mapper;

import com.github.pagehelper.Page;
import com.zzyl.dto.NursingPlanDto;
import com.zzyl.entity.NursingPlan;
import com.zzyl.vo.NursingPlanVo;
import com.zzyl.vo.NursingProjectPlanVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper
public interface NursingPlanMapper {
    /**
     * 条件分页查询
     */
    Page<NursingPlan> queryNursingPlan(@Param("name") String name, @Param("status") Integer status);
    /**
     * 根据护理计划的ids查询被引用的次数
     */
    List<Map<String , Object>> queryNursingPlanByids(List<Long> ids);


    /**
     * 查询所有护理计划
     */
    List<NursingPlan> findNursingPlanList();


    /**
     * 新增护理计划
     */
    Long addNursingPlan(NursingPlan nursingPlan);
    /**
     * 新增护理计划里面的每一条护理_项目_计划表
     */
    void addNursingPlans(NursingProjectPlanVo projectPlan);


    /**
     * 根据id查询护理计划
     */
    NursingPlan findNursingPlanById(Long id);
    /**
     * 根据id查询护理计划下面的护理_项目_计划表
     */
    List<NursingProjectPlanVo> findNursingProjectPlanById(Long id);


    /**
     * 修改护理计划
     */
    void modifyNursingPlan(NursingPlan nursingPlan);
    /**
     * 根据护理计划id删除 护理_项目_计划表的数据
     */
    void deleteNursingPlans(Long id);

    /**
     * 护理计划启用/禁用（通过id修改状态）
     */
    void modifyNursingPlanStatus(Integer id, Integer status);

    /**
     * 删除护理计划
     */
    void deleteNursingPlan(Integer id);
}
